<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="app">
        <p>{{firstName}}</p>
        <p>{{lastName}}</p>
        <user-name v-model:first-name='firstName' v-model:last-name='lastName'></user-name>
    </div>

    <script>
       
        const UserName={
            props: {
                firstName:String,
                lastName:String
            },
            template:`
                <input type="text"
                    :value="firstName"
                    @input="$emit('update:firstName',$event.target.value)"
                />
                <br/>
                <input type="text"
                    :value="lastName"
                    @input="$emit('update.lastName',$event.target.value)"
                />
            `
        }

        const option={
            components:{
                UserName,
            },
            data() {
                return {
                    firstName:'John',
                    lastName:'Doe'
                }
            },
        }

        const app = Vue.createApp(option)
        const vm = app.mount("#app")
    </script>
</body>
</html>